example: Modernize the prefs dialog
authorMatthias Clasen <mclasen@redhat.com>
Thu, 17 Apr 2014 19:18:01 +0000 (12:18 -0700)
committerMatthias Clasen <mclasen@redhat.com>
Fri, 18 Apr 2014 02:55:39 +0000 (22:55 -0400)
We should show the current best practice for this kind of
dialog, and use a headerbar with a window close button.

examples/application10/exampleappprefs.c
examples/application10/prefs.ui
examples/application6/exampleappprefs.c
examples/application6/prefs.ui
examples/application7/exampleappprefs.c
examples/application7/prefs.ui
examples/application8/exampleappprefs.c
examples/application8/prefs.ui
examples/application9/exampleappprefs.c
examples/application9/prefs.ui

index 8cd5d5e3a3c40b4250aff6c65348a0a7401e3db5..6a033817bd8ff5132f78e6d9e9868c8556e16ba1 100644 (file)
@@ -25,12 +25,6 @@ struct _ExampleAppPrefsPrivate
 
 G_DEFINE_TYPE_WITH_PRIVATE(ExampleAppPrefs, example_app_prefs, GTK_TYPE_DIALOG)
 
-static void
-preferences_closed (GtkWidget *button)
-{
-  gtk_widget_destroy (gtk_widget_get_toplevel (button));
-}
-
 static void
 example_app_prefs_init (ExampleAppPrefs *prefs)
 {
@@ -68,12 +62,10 @@ example_app_prefs_class_init (ExampleAppPrefsClass *class)
                                                "/org/gtk/exampleapp/prefs.ui");
   gtk_widget_class_bind_template_child_private (GTK_WIDGET_CLASS (class), ExampleAppPrefs, font);
   gtk_widget_class_bind_template_child_private (GTK_WIDGET_CLASS (class), ExampleAppPrefs, transition);
-
-  gtk_widget_class_bind_template_callback (GTK_WIDGET_CLASS (class), preferences_closed);
 }
 
 ExampleAppPrefs *
 example_app_prefs_new (ExampleAppWindow *win)
 {
-  return g_object_new (EXAMPLE_APP_PREFS_TYPE, "transient-for", win, NULL);
+  return g_object_new (EXAMPLE_APP_PREFS_TYPE, "transient-for", win, "use-header-bar", TRUE, NULL);
 }
index 49781d194caf74aaf4f74dd6341571a41bab0323..95e1cb806940c14a952ca11c775a43ad2bb47a45 100644 (file)
             </child>
           </object>
         </child>
-        <child internal-child="action_area">
-          <object class="GtkButtonBox" id="action_area">
-            <property name="visible">True</property>
-            <child>
-              <object class="GtkButton" id="close">
-                <signal name="clicked" handler="preferences_closed"/>
-                <property name="visible">True</property>
-                <property name="label">_Close</property>
-                <property name="use-underline">True</property>
-              </object>
-            </child>
-          </object>
-        </child>
       </object>
     </child>
   </template>
index 8cd5d5e3a3c40b4250aff6c65348a0a7401e3db5..6a033817bd8ff5132f78e6d9e9868c8556e16ba1 100644 (file)
@@ -25,12 +25,6 @@ struct _ExampleAppPrefsPrivate
 
 G_DEFINE_TYPE_WITH_PRIVATE(ExampleAppPrefs, example_app_prefs, GTK_TYPE_DIALOG)
 
-static void
-preferences_closed (GtkWidget *button)
-{
-  gtk_widget_destroy (gtk_widget_get_toplevel (button));
-}
-
 static void
 example_app_prefs_init (ExampleAppPrefs *prefs)
 {
@@ -68,12 +62,10 @@ example_app_prefs_class_init (ExampleAppPrefsClass *class)
                                                "/org/gtk/exampleapp/prefs.ui");
   gtk_widget_class_bind_template_child_private (GTK_WIDGET_CLASS (class), ExampleAppPrefs, font);
   gtk_widget_class_bind_template_child_private (GTK_WIDGET_CLASS (class), ExampleAppPrefs, transition);
-
-  gtk_widget_class_bind_template_callback (GTK_WIDGET_CLASS (class), preferences_closed);
 }
 
 ExampleAppPrefs *
 example_app_prefs_new (ExampleAppWindow *win)
 {
-  return g_object_new (EXAMPLE_APP_PREFS_TYPE, "transient-for", win, NULL);
+  return g_object_new (EXAMPLE_APP_PREFS_TYPE, "transient-for", win, "use-header-bar", TRUE, NULL);
 }
index 49781d194caf74aaf4f74dd6341571a41bab0323..95e1cb806940c14a952ca11c775a43ad2bb47a45 100644 (file)
             </child>
           </object>
         </child>
-        <child internal-child="action_area">
-          <object class="GtkButtonBox" id="action_area">
-            <property name="visible">True</property>
-            <child>
-              <object class="GtkButton" id="close">
-                <signal name="clicked" handler="preferences_closed"/>
-                <property name="visible">True</property>
-                <property name="label">_Close</property>
-                <property name="use-underline">True</property>
-              </object>
-            </child>
-          </object>
-        </child>
       </object>
     </child>
   </template>
index 8cd5d5e3a3c40b4250aff6c65348a0a7401e3db5..6a033817bd8ff5132f78e6d9e9868c8556e16ba1 100644 (file)
@@ -25,12 +25,6 @@ struct _ExampleAppPrefsPrivate
 
 G_DEFINE_TYPE_WITH_PRIVATE(ExampleAppPrefs, example_app_prefs, GTK_TYPE_DIALOG)
 
-static void
-preferences_closed (GtkWidget *button)
-{
-  gtk_widget_destroy (gtk_widget_get_toplevel (button));
-}
-
 static void
 example_app_prefs_init (ExampleAppPrefs *prefs)
 {
@@ -68,12 +62,10 @@ example_app_prefs_class_init (ExampleAppPrefsClass *class)
                                                "/org/gtk/exampleapp/prefs.ui");
   gtk_widget_class_bind_template_child_private (GTK_WIDGET_CLASS (class), ExampleAppPrefs, font);
   gtk_widget_class_bind_template_child_private (GTK_WIDGET_CLASS (class), ExampleAppPrefs, transition);
-
-  gtk_widget_class_bind_template_callback (GTK_WIDGET_CLASS (class), preferences_closed);
 }
 
 ExampleAppPrefs *
 example_app_prefs_new (ExampleAppWindow *win)
 {
-  return g_object_new (EXAMPLE_APP_PREFS_TYPE, "transient-for", win, NULL);
+  return g_object_new (EXAMPLE_APP_PREFS_TYPE, "transient-for", win, "use-header-bar", TRUE, NULL);
 }
index 49781d194caf74aaf4f74dd6341571a41bab0323..95e1cb806940c14a952ca11c775a43ad2bb47a45 100644 (file)
             </child>
           </object>
         </child>
-        <child internal-child="action_area">
-          <object class="GtkButtonBox" id="action_area">
-            <property name="visible">True</property>
-            <child>
-              <object class="GtkButton" id="close">
-                <signal name="clicked" handler="preferences_closed"/>
-                <property name="visible">True</property>
-                <property name="label">_Close</property>
-                <property name="use-underline">True</property>
-              </object>
-            </child>
-          </object>
-        </child>
       </object>
     </child>
   </template>
index 8cd5d5e3a3c40b4250aff6c65348a0a7401e3db5..6a033817bd8ff5132f78e6d9e9868c8556e16ba1 100644 (file)
@@ -25,12 +25,6 @@ struct _ExampleAppPrefsPrivate
 
 G_DEFINE_TYPE_WITH_PRIVATE(ExampleAppPrefs, example_app_prefs, GTK_TYPE_DIALOG)
 
-static void
-preferences_closed (GtkWidget *button)
-{
-  gtk_widget_destroy (gtk_widget_get_toplevel (button));
-}
-
 static void
 example_app_prefs_init (ExampleAppPrefs *prefs)
 {
@@ -68,12 +62,10 @@ example_app_prefs_class_init (ExampleAppPrefsClass *class)
                                                "/org/gtk/exampleapp/prefs.ui");
   gtk_widget_class_bind_template_child_private (GTK_WIDGET_CLASS (class), ExampleAppPrefs, font);
   gtk_widget_class_bind_template_child_private (GTK_WIDGET_CLASS (class), ExampleAppPrefs, transition);
-
-  gtk_widget_class_bind_template_callback (GTK_WIDGET_CLASS (class), preferences_closed);
 }
 
 ExampleAppPrefs *
 example_app_prefs_new (ExampleAppWindow *win)
 {
-  return g_object_new (EXAMPLE_APP_PREFS_TYPE, "transient-for", win, NULL);
+  return g_object_new (EXAMPLE_APP_PREFS_TYPE, "transient-for", win, "use-header-bar", TRUE, NULL);
 }
index 49781d194caf74aaf4f74dd6341571a41bab0323..95e1cb806940c14a952ca11c775a43ad2bb47a45 100644 (file)
             </child>
           </object>
         </child>
-        <child internal-child="action_area">
-          <object class="GtkButtonBox" id="action_area">
-            <property name="visible">True</property>
-            <child>
-              <object class="GtkButton" id="close">
-                <signal name="clicked" handler="preferences_closed"/>
-                <property name="visible">True</property>
-                <property name="label">_Close</property>
-                <property name="use-underline">True</property>
-              </object>
-            </child>
-          </object>
-        </child>
       </object>
     </child>
   </template>
index 8cd5d5e3a3c40b4250aff6c65348a0a7401e3db5..6a033817bd8ff5132f78e6d9e9868c8556e16ba1 100644 (file)
@@ -25,12 +25,6 @@ struct _ExampleAppPrefsPrivate
 
 G_DEFINE_TYPE_WITH_PRIVATE(ExampleAppPrefs, example_app_prefs, GTK_TYPE_DIALOG)
 
-static void
-preferences_closed (GtkWidget *button)
-{
-  gtk_widget_destroy (gtk_widget_get_toplevel (button));
-}
-
 static void
 example_app_prefs_init (ExampleAppPrefs *prefs)
 {
@@ -68,12 +62,10 @@ example_app_prefs_class_init (ExampleAppPrefsClass *class)
                                                "/org/gtk/exampleapp/prefs.ui");
   gtk_widget_class_bind_template_child_private (GTK_WIDGET_CLASS (class), ExampleAppPrefs, font);
   gtk_widget_class_bind_template_child_private (GTK_WIDGET_CLASS (class), ExampleAppPrefs, transition);
-
-  gtk_widget_class_bind_template_callback (GTK_WIDGET_CLASS (class), preferences_closed);
 }
 
 ExampleAppPrefs *
 example_app_prefs_new (ExampleAppWindow *win)
 {
-  return g_object_new (EXAMPLE_APP_PREFS_TYPE, "transient-for", win, NULL);
+  return g_object_new (EXAMPLE_APP_PREFS_TYPE, "transient-for", win, "use-header-bar", TRUE, NULL);
 }
index 49781d194caf74aaf4f74dd6341571a41bab0323..95e1cb806940c14a952ca11c775a43ad2bb47a45 100644 (file)
             </child>
           </object>
         </child>
-        <child internal-child="action_area">
-          <object class="GtkButtonBox" id="action_area">
-            <property name="visible">True</property>
-            <child>
-              <object class="GtkButton" id="close">
-                <signal name="clicked" handler="preferences_closed"/>
-                <property name="visible">True</property>
-                <property name="label">_Close</property>
-                <property name="use-underline">True</property>
-              </object>
-            </child>
-          </object>
-        </child>
       </object>
     </child>
   </template>